// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'

Page({
  data: {
    motto: '',
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
    },
    hasUserInfo: false,
    canIUseGetUserProfile: wx.canIUse('getUserProfile'),
    canIUseNicknameComp: wx.canIUse('input.type.nickname'),
    tarotCards: [],
    isDrawing: false,
    showCardDetail: false,
    selectedCard: null,
    cardMeanings: {
      '愚者': {
        upright: '新的开始、纯真、自发性、自由精神',
        reversed: '鲁莽、风险、愚蠢、缺乏方向'
      },
      '魔术师': {
        upright: '意志力、欲望、创造、显化',
        reversed: '操纵、欺骗、缺乏能量、滥用权力'
      },
      '女祭司': {
        upright: '直觉、神圣知识、神秘、潜意识',
        reversed: '隐藏的知识、内在声音、缺乏个人和谐'
      },
      '女皇': {
        upright: '女性力量、美丽、自然、富饶',
        reversed: '创造力受阻、依赖他人、缺乏成长'
      },
      '皇帝': {
        upright: '权威、结构、控制、父亲形象',
        reversed: '专制、缺乏纪律、不负责任'
      },
      '教皇': {
        upright: '精神指导、传统、符合规范、制度',
        reversed: '个人信仰、自由、挑战现状'
      },
      '恋人': {
        upright: '爱情、和谐、关系、价值观一致',
        reversed: '不和谐、价值观冲突、关系问题'
      },
      '战车': {
        upright: '控制、意志力、成功、决心',
        reversed: '缺乏控制、缺乏方向、攻击性'
      },
      '力量': {
        upright: '内在力量、勇气、耐心、控制',
        reversed: '内在弱点、自我怀疑、缺乏能量'
      },
      '隐士': {
        upright: '内省、寻找真理、内在指导',
        reversed: '孤立、迷失、寻求外在答案'
      },
      '命运之轮': {
        upright: '好运、命运、生活周期、转折点',
        reversed: '坏运气、缺乏控制、破坏性循环'
      },
      '正义': {
        upright: '正义、公平、真理、因果律',
        reversed: '不公正、缺乏问责、偏见'
      },
      '倒吊人': {
        upright: '暂停、限制、放手、新观点',
        reversed: '拖延、抵抗、犹豫不决'
      },
      '死神': {
        upright: '转变、结束、改变、转换',
        reversed: '抗拒改变、停滞、腐烂'
      },
      '节制': {
        upright: '平衡、节制、耐心、目标',
        reversed: '不平衡、过度、缺乏长远目标'
      },
      '恶魔': {
        upright: '束缚、成瘾、性、物质主义',
        reversed: '释放、恢复控制、脱离限制'
      },
      '塔': {
        upright: '突然改变、颠覆、混乱、启示',
        reversed: '避免灾难、恐惧改变、寻求稳定'
      },
      '星星': {
        upright: '希望、信仰、目标、灵性指导',
        reversed: '缺乏信心、绝望、缺乏目标'
      },
      '月亮': {
        upright: '幻觉、恐惧、焦虑、潜意识',
        reversed: '释放恐惧、压抑情绪、内在混乱'
      },
      '太阳': {
        upright: '快乐、成功、庆祝、积极',
        reversed: '内在孩子、过度乐观、缺乏成功'
      },
      '审判': {
        upright: '反思、重生、内在呼唤、宽恕',
        reversed: '自我怀疑、内在批评、缺乏宽恕'
      },
      '世界': {
        upright: '完成、成就、旅行、成功',
        reversed: '缺乏完成、缺乏成就、停滞'
      }
    }
  },
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    const { nickName } = this.data.userInfo
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  onInputChange(e) {
    const nickName = e.detail.value
    const { avatarUrl } = this.data.userInfo
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  drawTarotCards: function() {
    this.setData({
      isDrawing: true
    });
    
    // 模拟抽牌延迟，给用户展示动画
    setTimeout(() => {
      // 定义塔罗牌（大阿卡纳牌）
      const tarotDeck = [
        '愚者', '魔术师', '女祭司', '女皇', '皇帝', '教皇', '恋人', 
        '战车', '力量', '隐士', '命运之轮', '正义', '倒吊人', '死神', 
        '节制', '恶魔', '塔', '星星', '月亮', '太阳', '审判', '世界'
      ];
      
      // 抽取3张不重复的牌
      let selectedCards = [];
      let usedIndices = new Set();
      
      while(selectedCards.length < 3) {
        const randomIndex = Math.floor(Math.random() * tarotDeck.length);
        
        if(!usedIndices.has(randomIndex)) {
          usedIndices.add(randomIndex);
          
          // 随机确定正逆位
          const isUpright = Math.random() > 0.5;
          
          selectedCards.push({
            name: tarotDeck[randomIndex],
            position: isUpright ? '正位' : '逆位',
            isUpright: isUpright
          });
        }
      }
      
      // 设置塔罗牌结果，关闭动画
      this.setData({
        tarotCards: selectedCards.map(card => ({...card, revealed: false})),
        isDrawing: false
      });
      
      // 设置延迟动画，逐个显示卡片
      selectedCards.forEach((card, index) => {
        setTimeout(() => {
          let updatedCards = this.data.tarotCards;
          updatedCards[index].revealed = true;
          this.setData({
            tarotCards: updatedCards
          });
        }, 300 * index);
      });
    }, 2000); // 动画展示2秒后显示结果
  },
  navigateToCup: function() {
    wx.navigateTo({
      url: '/pages/holy/holy'
    })
  },
  goToHolyPage: function() {
    wx.navigateTo({
      url: '/pages/holy/holy'
    })
  },
  // 点击塔罗牌显示详细解释
  onCardTap: function(e) {
    const cardIndex = e.currentTarget.dataset.index;
    const selectedCard = this.data.tarotCards[cardIndex];
    
    if (selectedCard && selectedCard.revealed) {
      const meaning = this.data.cardMeanings[selectedCard.name];
      const cardDetail = {
        ...selectedCard,
        meaning: selectedCard.isUpright ? meaning.upright : meaning.reversed
      };
      
      this.setData({
        selectedCard: cardDetail,
        showCardDetail: true
      });
    }
  },
  // 关闭详细解释弹窗
  closeCardDetail: function() {
    this.setData({
      showCardDetail: false,
      selectedCard: null
    });
  },
  // 分享给好友功能
  onShareAppMessage: function() {
    return {
      title: '掷茭塔罗 - 塔罗 八卦 圣杯',
      path: '/pages/index/index',
      // 不添加imageUrl，使用页面截图作为分享图片
    }
  },
  
  // 分享到朋友圈功能
  onShareTimeline: function() {
    return {
      title: '掷茭塔罗 - 塔罗 八卦 圣杯',
      query: ''
      // 不添加imageUrl，使用页面截图作为分享图片
    }
  },
})
